#！/usr/bin/python 
# -*- coding:utf-8 -*-  
# @Time: 2019/6/8 17:20   
# @Author: Envy   
# @File: search_indexes.py


# 本文件的名称不可以随意发生改变，必须是search_indexes.py文件，不可以随意修改，否则无法创建索引

# 为指定的数据模型添加索引
from haystack import indexes
from index.models import Product


# 数据模型索引类必须按照以下固定格式书写：模型名+Index，如Product模型的索引类必须为ProductIndex，不按照这样就会出错
class ProductIndex(indexes.SearchIndex, indexes.Indexable):
    # text设置document=True代表搜索引擎将使用此字段的内容作为索引进行检索
    # text设置use_template=True是使用索引模板建立索引文件，可以理解为在索引中设置模型的查询字段
    # 如设置Product的description字段，这样可以通过description的内容检索Product的数据
    text = indexes.CharField(document=True, use_template=True)

    # 设置模型，将该索引类与模型进行绑定
    def get_model(self):
        return Product

    # 设置模型的搜索（查询）范围
    def index_queryset(self, using=None):
        return self.get_model().objects.all()